#ifndef ROTATION
#define ROTATION

#include <base\vec4f.h>
#include <base\vec3f.h>

#define FLT_EPSILON     1.192092896e-07F        /* smallest such that 1.0+FLT_EPSILON != 1.0 */

class matrix;

class rotation {

 vec4f quat;

public:

  rotation();
  rotation(const vec3f & axis, const float radians);
  rotation(const float q0, const float q1, const float q2, const float q3);
  static rotation identity(void);

  void getValue(matrix & matrix_) const;
  const float * getValue(void) const;
};

#endif